<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Cadastros_model extends CI_Model {

    public $userKey;

    public function __construct() {
        parent::__construct();
        $this->userKey = $this->session->userdata('userKey');
    }

    // Retorna todos os registros

    public function get_all($chave = '') {
        //   $this->db->where('COD_CHAVE', $chave);
        $sql = $this->db->get('cadastros');
        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function alterarAluno($id, $dados) {
        $this->db->where('CODIGO', $id);
        $sql = $this->db->update('cadastros', $dados);
        if ($sql)
            return TRUE;
    }

    public function delete($id, $chave = '') {
        //   $this->db->where('COD_CHAVE', $chave);
        $this->db->where('CODIGO', $id);
        if ($this->db->delete('cadastros')) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function novoAluno($dados) {
        if (!empty($dados)) {
            if ($this->db->insert('cadastros', $dados)) {
                return $this->db->insert_id();
            } else {
                return null;
            }
        }
    }

    public function get_id($id) {
        //$this->db->where('COD_CHAVE', ($chave != '') ? $chave : $this->userKey);
        $this->db->where('CODIGO', $id);
        $sql = $this->db->get('cadastros');
        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return NULL;
        }
    }

    public function get_num($grupo = '', $chave = '') {
        // $this->db->where('COD_CHAVE', $chave);
        $this->db->where('GRUPO', $grupo);
        $sql = $this->db->get('cadastros');
        return $sql->num_rows;
    }

    public function get_byLogin($email = '', $senha = '') {
        $this->db->where('EMAIL', $email);
        $this->db->where('SENHA', md5(md5($senha)));
        $sql = $this->db->get('cadastros');
        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return FALSE;
        }
    }

    public function get_byLogin2($email = '', $senha = '') {
        $this->db->where('EMAIL', $email);
        $this->db->where('SENHA', $senha);
        $sql = $this->db->get('cadastros');
        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return FALSE;
        }
    }

    public function getUsuarioByEmail($email) {
        $this->db->where('EMAIL', $email);
        $sql = $this->db->get('cadastros');
        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return false;
        }
    }

    public function getTempo($COD_ALUNO) {
        $this->db->where('COD_ALUNO', $COD_ALUNO);
        $sql = $this->db->get('tempo_velocidade');
        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return FALSE;
        }
    }

    public function tempoTotal($COD_ALUNO) {
        $this->db->where('COD_ALUNO', $COD_ALUNO);
        $this->db->where('SITUACAO', 0);
        $this->db->select_sum('TEMPO_PREVISTO');
        $sql = $this->db->get('topicos_usuario');
        if ($sql->num_rows > 0) {
            // die($this->db->last_query());
            return $sql->row()->TEMPO_PREVISTO;
        } else {
            return FALSE;
        }
    }

    public function getProjeto($COD_ALUNO, $status = null, $cod_projeto = null) {
        $this->db->select('PA.*,P.NOME,P.DESCRICAO');
        $this->db->where('PA.COD_ALUNO', $COD_ALUNO);
        if (!is_null($status)) {
            $this->db->where('PA.STATUS', $status);
        }

        if (!is_null($cod_projeto)) {
            $this->db->where('PA.COD_PROJETO', $cod_projeto);
        }

        $this->db->from('projeto_aluno AS PA');
        $this->db->join('projetos AS P', 'P.CODIGO = PA.COD_PROJETO');
        $sql = $this->db->get();
        
        // die($this->db->last_query());
        if ($sql->num_rows > 0) {
            switch ($sql->num_rows) {
                case 1:
                    return $sql->row();
                default:
                    return $sql->result_array();
            }
        } else {
            return FALSE;
        }
    }

    public function getTopicoUsuarios($cod_aluno, $ciclo = null) {
        $this->db->select('TU.*,DT.PAGINAS,DT.QUANT_PAGINAS,BI.TIPO');
        $this->db->where('COD_ALUNO', $cod_aluno);
        $this->db->from('topicos_usuario AS TU');
        $this->db->join('detalhetopico AS DT', 'DT.COD_TOPICO = TU.COD_TOPICO AND DT.COD_BIBLIOGRAFIA = TU.COD_BIBLIOGRAFIA');
        $this->db->join('bibliografia AS BI', 'BI.CODIGO = TU.COD_BIBLIOGRAFIA');
        $this->db->order_by('PRIORIDADE asc, PRIORIDADE_DISCIPLINA asc'); 
        
        if (!is_null($ciclo)) {
            $this->db->where('CICLO', $ciclo);
        } else {
            $this->db->where('CICLO > ', '0');
        }
        $sql = $this->db->get();
        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }
    public function getMaxCiclo($codAluno){
        $this->db->select_max('CICLO');
        $this->db->from("topicos_usuario");
        $this->db->where("COD_ALUNO",$codAluno);
        $this->db->order_by("DATA_ESTUDO","desc");
        $this->db->limit(1);
        $sql = $this->db->get();
        //echo $this->db->last_query();
        if ($sql->num_rows > 0) {
             $row = $sql->row(); 
            return $row->CICLO;
        } else {
            return NULL;
        }
    }
    public function recalcularTempoDisciplina($codAluno){
        $max_ciclo= $this->getMaxCiclo($codAluno);
        
        $this->db->select("T.COD_DISCIPLINA, (AVG(TU.TEMPO_ESTUDO)/AVG(DT.QUANT_PAGINAS))AS NovoTempo ,  avg(DT.QUANT_PAGINAS) , avg(`TEMPO_ESTUDO`) AS MEDIA ");
        $this->db->from("topico AS T");
        $this->db->join("topicos_usuario AS TU","TU.COD_TOPICO = T.CODIGO");
        $this->db->join("detalhetopico AS DT","DT.COD_TOPICO = TU.COD_TOPICO AND DT.COD_BIBLIOGRAFIA = TU.COD_BIBLIOGRAFIA");
        
        $this->db->where("TU.COD_ALUNO",$codAluno);
        $this->db->where("TU.CICLO",$max_ciclo);
        $this->db->group_by("T.COD_DISCIPLINA"); 
        
         $sql = $this->db->get();
         
        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
       
    }
    public function alterarTempoDisciplina($dados){
        $this->db->where('COD_ALUNO', $dados['COD_ALUNO']);
        $this->db->where('COD_DISCIPLINA', $dados['COD_DISCIPLINA']);
        if ($this->db->update('velocidade_por_disciplina', $dados)) { 
            return TRUE;
        } else {
            return FALSE;
        }
    }
    public function getTopicoBanca($cod_aluno) {
        $this->db->select('(COD_TOPICO_BANCA)');
        $this->db->distinct();
        $this->db->select('TU.CICLO,BT.DESCRICAO AS DESCRICAO_TOPICO_BANCA');
        $this->db->where('COD_ALUNO', $cod_aluno);
        $this->db->join('banca_topico AS BT', 'BT.CODIGO = COD_TOPICO_BANCA');
        $this->db->where('CICLO > ', '0');
        $this->db->order_by("CICLO ASC, COD_TOPICO_BANCA ASC");
        $this->db->from('topicos_usuario as TU');
        $sql = $this->db->get();
        // die($this->db->last_query());
        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getTopicoCiclos($cod_aluno, $codTopicoBanca = null, $ciclo = null) {/* ,BT.DESCRICAO AS DESCRICAO_TOPICO_BANCA */
        $this->db->select('TU.*,D.DESCRICAO AS Disciplina,T.DESCRICAO AS topico_descricao,DT.PAGINAS,BI.TIPO,BI.PROPRIA');
        if (!is_null($codTopicoBanca)) {
            $this->db->where('COD_ALUNO', $cod_aluno);
            //$this->db->where('SITUACAO', '0');
        }
        $this->db->where('TBT.COD_TOPICO_BANCA', $codTopicoBanca);
        $this->db->from('topicos_usuario AS TU');
        $this->db->join('detalhetopico AS DT', 'DT.COD_TOPICO = TU.COD_TOPICO AND DT.COD_BIBLIOGRAFIA = TU.COD_BIBLIOGRAFIA');
        $this->db->join('bibliografia AS BI', 'BI.CODIGO = TU.COD_BIBLIOGRAFIA');
        $this->db->join('topico AS T', 'T.CODIGO = TU.COD_TOPICO');
        $this->db->join('disciplinas AS D', 'D.CODIGO = T.COD_DISCIPLINA');
        $this->db->join('topicobanca_topico AS TBT', 'TBT.COD_TOPICO_LIVRO = TU.COD_TOPICO');
        //$this->db->order_by("CICLO ASC, COD_TOPICO_BANCA ASC");

        if (!is_null($ciclo)) {
            $this->db->where('CICLO', $ciclo);
        } else {
            $this->db->where('CICLO > ', '0');
        }
        $sql = $this->db->get();
        // die($this->db->last_query());
        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getCiclosUsuarios($cod_aluno, $cod_projeto = null) {
        $this->db->select('TU.CICLO');
        $this->db->distinct();
        $this->db->where('COD_ALUNO', $cod_aluno);
        $this->db->where('CICLO >', '0');
        $this->db->where('COD_PROJETO', $cod_projeto); //ALTERAR ESSA LINHA AMANHA PRA PEGAR O PROJETO ATUAL E OS PROJETOS ANTIGOS. feito
        $this->db->from('topicos_usuario AS TU');
        $this->db->order_by("CICLO", "desc");
        $sql = $this->db->get();
        // die($this->db->last_query());

        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getTopicosUsuariobyId($codigo) {
        $this->db->select('TU.*');
        $this->db->where('CODIGO', $codigo);
        $this->db->from('topicos_usuario AS TU');
        $this->db->order_by("PRIORIDADE", "ASC");
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return NULL;
        }
    }

    public function getTopicosRestante($cod_aluno) {
        $this->db->select('TU.*');
        $this->db->where('COD_ALUNO', $cod_aluno);
        $this->db->where('SITUACAO', '0');
        $this->db->from('topicos_usuario AS TU');
        $this->db->order_by("PRIORIDADE asc, CODIGO asc");
        $sql = $this->db->get();
        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function updateTopicoUsuario($dados, $codigo) {
        $this->db->where_in('CODIGO', $codigo);
        if ($this->db->update('topicos_usuario', $dados)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function maiorCiclo($cod_aluno) {
        $this->db->select_max('CICLO');
        $this->db->where('COD_ALUNO', $cod_aluno);
        $sql = $this->db->get('topicos_usuario');
        return $sql->row();
    }

    public function DataInicio($cod_aluno) {
        $this->db->select_max('DATA_INICIO_CICLO');
        $this->db->where('COD_ALUNO', $cod_aluno);
        $sql = $this->db->get('topicos_usuario');
        return $sql->row();
    }

    public function criarCiclos() {
        //calculo de pagina por semana (tempo_disponivel *3600 / velocidade)
        //calculo tranformar pagina em tempo (quantidade_pagina * velocidade /3600)
    }

    public function getCidades($sigla) {
        $this->db->where('SIGLA', $sigla);
        $sql_estado = $this->db->get('estados');
        $this->db->where('COD_ESTADO', $sql_estado->row('CODIGO'));
        $sql = $this->db->get('cidades');
        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            echo 'selecione um estado';
        }
    }

    public function getEstados() {
        $sql = $this->db->get('estados');
        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getEditoras() {
        $this->db->order_by('DESCRICAO');
        $sql = $this->db->get('editoras');

        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getCategoriaDisciplina($CODIGO = NULL) {
        $this->db->order_by('DESCRICAO');
        if ($CODIGO != NULL) {
            $this->db->where("CODIGO", $CODIGO);
        }

        $sql = $this->db->get('categoria_disciplina');
        if ($sql->num_rows > 0) {
            if ($CODIGO != NULL) {
                return $sql->row();
            }
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function novaCategoriaDisciplina($dados) {
        if (!empty($dados))
            $this->db->insert('categoria_disciplina', $dados);
        return $this->db->insert_id();
    }

    public function getDisciplinaByCat($COD_CATEGORIA) {
        $this->db->select('*');
        $this->db->from('disciplinas AS D');
        $this->db->order_by('D.DESCRICAO');
        $this->db->where("STATUS", '1');
        $this->db->where("COD_CATEGORIA", $COD_CATEGORIA);
        $sql = $this->db->get();
        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }
    
    public function getDisciplinas($CODIGO = NULL) {
        $this->db->select('D.*,CD.DESCRICAO AS CATEGORIA');
        $this->db->from('disciplinas AS D');
        $this->db->join('categoria_disciplina AS CD', 'CD.CODIGO = D.COD_CATEGORIA', 'left');
        $this->db->order_by('D.DESCRICAO');
        $this->db->where("STATUS", '1');
        if ($CODIGO != NULL) {
            $this->db->where("D.CODIGO", $CODIGO);
        }

        $sql = $this->db->get();
        if ($sql->num_rows > 0) {
            if ($CODIGO != NULL) {
                return $sql->row();
            }
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getDisciplinasVinculadas($banca) {
        $this->db->select('BD.COD_DISCIPLINA,D.*');
        $this->db->from('banca_disciplina AS BD');
        $this->db->join('disciplinas AS D', 'D.CODIGO = BD.COD_DISCIPLINA', 'left');
        $this->db->where("BD.COD_BANCA", $banca);
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getDisciplinasProjetos($codProjeto) {
        $this->db->select('PD.COD_DISCIPLINA,PD.BIBLIOGRAFIA_RECOMENDADA,PD.PRIORIDADE,D.*');
        $this->db->from('projeto_disciplina AS PD');
        $this->db->join('disciplinas AS D', 'D.CODIGO = PD.COD_DISCIPLINA', 'left');
        $this->db->where("PD.COD_PROJETO", $codProjeto);
        $this->db->order_by('PD.PRIORIDADE','ASC');
        $sql = $this->db->get();
        
        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }
    public function getPrioridadeDisciplina($codDisciplina,$codProjeto){
         $this->db->select('PD.*');
         $this->db->where('PD.COD_DISCIPLINA', $codDisciplina);
         $this->db->where('PD.COD_PROJETO', $codProjeto);
         $sql = $this->db->get("projeto_disciplina AS PD");
         
        if ($sql->num_rows > 0) {
            return $sql->row('PRIORIDADE');
        } else {
            return NULL;
        }
        
    }
    public function getDisciplinabyUsuario($codUsuario) {
        $this->db->select('D.*');
        $this->db->distinct();
        $this->db->from('disciplinas AS D');
        $this->db->join('topico AS T', 'T.COD_DISCIPLINA = D.CODIGO');
        $this->db->join('topicos_usuario as TU', 'TU.COD_TOPICO = T.CODIGO');
        $this->db->where('TU.COD_ALUNO', $codUsuario);
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }
    public function insertVelocidadeDisciplina($dados){
        $this->db->where('COD_DISCIPLINA', $dados['COD_DISCIPLINA']);
        $this->db->where('COD_ALUNO', $dados['COD_ALUNO']);
        $sql = $this->db->get('velocidade_por_disciplina');
        
        if ($sql->num_rows == 0) {
            $this->db->insert('velocidade_por_disciplina', $dados);
            return $this->db->insert_id();
           
        } 
    }
    public function getVelocidadeByDisciplinaByTopico($codUsuario,$codTopico){
         $this->db->select('VD.VELOCIDADE');
         $this->db->from('velocidade_por_disciplina AS VD');
         $this->db->join('topico AS T', 'T.COD_DISCIPLINA = VD.COD_DISCIPLINA');
         $this->db->where('VD.COD_ALUNO', $codUsuario);
         $this->db->where('T.CODIGO', $codTopico);
        $sql = $this->db->get();
      //  echo $this->db->last_query();
        
         if ($sql->num_rows > 0) {
            return $sql->row_array();
        } else {
            return NULL;
        }
        // uTILIZAR ESTA QUERY
        //SELECT VELOCIDADE FROM velocidade_por_disciplina AS VD join topico  AS T ON T.COD_DISCIPLINA =VD.COD_DISCIPLINA WHERE T.CODIGO =9945 AND VD.COD_ALUNO=4;
    }
    public function getTotalDisciplinabyUsuario($codUsuario, $cod_disciplina) {
        $this->db->select_sum('TU.TEMPO_ESTUDO', 'TOTAL');
        $this->db->from('disciplinas AS D');
        $this->db->join('topico AS T', 'T.COD_DISCIPLINA = D.CODIGO');
        $this->db->join('topicos_usuario as TU', 'TU.COD_TOPICO = T.CODIGO');
        $this->db->where('TU.COD_ALUNO', $codUsuario);
        $this->db->where('D.CODIGO', $cod_disciplina);
        $sql = $this->db->get();
        //  die($this->db->last_query());

        if ($sql->num_rows > 0) {
            return $sql->row_array();
        } else {
            return NULL;
        }
    }

    public function getSubTotalDisciplinabyUsuario($codUsuario, $cod_disciplina, $ciclo) {
        $this->db->select_sum('TU.TEMPO_ESTUDO', 'subTotal');
        $this->db->from('disciplinas AS D');
        $this->db->join('topico AS T', 'T.COD_DISCIPLINA = D.CODIGO');
        $this->db->join('topicos_usuario as TU', 'TU.COD_TOPICO = T.CODIGO');
        $this->db->where('TU.COD_ALUNO', $codUsuario);
        $this->db->where('D.CODIGO', $cod_disciplina);
        $this->db->where('TU.CICLO', $ciclo);
        $sql = $this->db->get();
        //  die($this->db->last_query());

        if ($sql->num_rows > 0) {
            return $sql->row_array();
        } else {
            return NULL;
        }
    }

    public function getTopicosVinculadas($banca, $codDisciplina = null) {
        $this->db->select('T.*,TCT.COD_TOPICO_BANCA,BT.DESCRICAO AS TOPICO_BANCA');
        $this->db->from('topico AS T');
        $this->db->join('topicobanca_topico AS TCT', 'TCT.COD_TOPICO_LIVRO =T.CODIGO', 'left');
        $this->db->join('banca_topico AS BT', 'BT.CODIGO =TCT.COD_TOPICO_BANCA');
        $this->db->where("BT.COD_BANCA", $banca);

        if (!is_null($codDisciplina)) {
            $this->db->where("T.COD_DISCIPLINA", $codDisciplina);
        }

        $sql = $this->db->get();
        // die($this->db->last_query());
        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getTopicosNaoVinculadas($banca, $codDisciplina) {
        $this->db->select('*');
        $this->db->from('topico AS T');
        $this->db->where("COD_DISCIPLINA", $codDisciplina);
        $sql = $this->db->get();

        if ($sql->num_rows() > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getTopicosVinculados($projeto) {
        $this->db->select('PT.COD_TOPICO');
        $this->db->from('projeto_topico AS PT');
        $this->db->where("PT.COD_PROJETO", $projeto);
        $sql = $this->db->get();
        if ($sql->num_rows() > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getCategoriaDisciplinas($CODIGO = NULL) {
        $this->db->select('*');
        $this->db->from('categoria_disciplina AS CD');
        $this->db->order_by('DESCRICAO');

        if ($CODIGO != NULL) {
            $this->db->where("CODIGO", $CODIGO);
        }
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            if ($CODIGO != NULL) {
                return $sql->row();
            }
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getBibliografia($CODIGO = NULL) {
        $this->db->select("B.*,E.DESCRICAO AS NOME_EDITORA ");
        $this->db->from('bibliografia B');
        $this->db->join('editoras E', 'E.CODIGO = B.COD_EDITORA');
        $this->db->where("B.STATUS", '1');

        if ($CODIGO != NULL) {
            $this->db->where("B.CODIGO", $CODIGO);
        }

        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            if ($CODIGO != NULL) {
                return $sql->row();
            }
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getBibliografiaByDisciplina($COD_DISCIPLINA) {
        $this->db->select("B.*,E.DESCRICAO AS NOME_EDITORA ");
        $this->db->from('disciplinabibliografia DB');
        $this->db->join('bibliografia B', 'B.CODIGO = DB.COD_BIBLIOGRAFIA');
        $this->db->join('editoras E', 'E.CODIGO = B.COD_EDITORA');
        $this->db->where("B.STATUS", '1');
        $this->db->where("DB.COD_DISCIPLINA", $COD_DISCIPLINA);
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            // return $this->db->last_query();
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getTopicosByDisciplina($cod_disciplina, $cod_projeto = null,$codBanca = null) {
        $this->db->select("T.DESCRICAO,T.CODIGO");
        $this->db->from('topico T');
        if (!is_null($cod_projeto)) {
            $this->db->select("PD.PRIORIDADE,TBT.COD_TOPICO_BANCA");
            $this->db->join('projeto_topico PD', 'PD.COD_TOPICO = T.CODIGO');
            $this->db->join('topicobanca_topico TBT', 'TBT.COD_TOPICO_LIVRO = T.CODIGO');
            $this->db->join('banca_topico BT', "BT.CODIGO = TBT.COD_TOPICO_BANCA AND BT.COD_BANCA=$codBanca");
            $this->db->where('PD.COD_PROJETO', $cod_projeto);

        }

        $this->db->where('T.COD_DISCIPLINA', $cod_disciplina);
        $this->db->order_by('T.CODIGO');
        $sql = $this->db->get();
      
        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function novoProjetoAluno($dados) {
        $this->db->where('COD_PROJETO', $dados['COD_PROJETO']);
        $this->db->where('COD_ALUNO', $dados['COD_ALUNO']);
        $sql = $this->db->get('projeto_aluno');
        $this->desativarProjetoAluno($dados);

        if ($sql->num_rows > 0) {
            return $this->ativarProjetoAluno($dados);
        } else {
            $this->db->insert('projeto_aluno', $dados);
            return $this->db->insert_id();
        }
    }

    public function ativarProjetoAluno($dados) {
        $this->db->where('COD_PROJETO', $dados['COD_PROJETO']);
        $this->db->where('COD_ALUNO', $dados['COD_ALUNO']);
        $dados['status'] = '1';

        if ($this->db->update('projeto_aluno', $dados)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function desativarProjetoAluno($dados) {
        $this->db->where('COD_ALUNO', $dados['COD_ALUNO']);
        $info['status'] = '0';

        if ($this->db->update('projeto_aluno', $info)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function gravarTopico($dados, $refazer = null) {
        if (is_null($refazer)) {
            $this->db->where('COD_ALUNO', $dados['COD_ALUNO']);
            $this->db->where('COD_TOPICO', $dados['COD_TOPICO']);
            $sql = $this->db->get('topicos_usuario');
            $quant = $sql->num_rows;
        } else {
            $quant = 0;
        }

        if ($quant == 0) {
            $this->db->insert('topicos_usuario', $dados);
            return $this->db->insert_id();
        }
    }

    public function apagarTopicos($codAluno) {
        $this->db->where('ciclo', '0');
        $this->db->where('COD_ALUNO', $codAluno);
        $this->db->delete('topicos_usuario');
    }

    public function getTopicos($CODIGO = NULL) {
        $retorno = "result_array";
        $this->db->select("T.*");
        $this->db->from('topico T');

        if (!is_null($CODIGO)) {
            $this->db->where('T.CODIGO', $CODIGO);
            $retorno = "row_array";
        }
        $this->db->order_by('T.DESCRICAO');
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            return $sql->$retorno();
        } else {
            return NULL;
        }
    }

    public function getPagina($COD_TOPICO, $COD_BIBLIOGRAFIA) {
        $this->db->where('COD_TOPICO', $COD_TOPICO);
        $this->db->where('COD_BIBLIOGRAFIA', $COD_BIBLIOGRAFIA);
        $sql = $this->db->get('detalhetopico');
        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return false;
        }
    }

    public function getDetalheTopico($COD_TOPICO, $COD_BIBLIOGRAFIA = NULL) {
        $this->db->select("DT.*,B.DESCRICAO");
        $this->db->from('detalhetopico DT');
        $this->db->join('bibliografia B', 'B.CODIGO = DT.COD_BIBLIOGRAFIA');
        $this->db->where('COD_TOPICO', $COD_TOPICO);
        if (!is_null($COD_BIBLIOGRAFIA)) {
            $this->db->where('COD_BIBLIOGRAFIA', $COD_BIBLIOGRAFIA);
        }
        $sql = $this->db->get('');

        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getBibliografiasByDisciplina($COD_DISCIPLINA) {
        $this->db->select("B.DESCRICAO,B.CODIGO,B.PROPRIA");
        $this->db->from('bibliografia B');
        $this->db->join('disciplinabibliografia DB', 'DB.COD_BIBLIOGRAFIA = B.CODIGO');
        $this->db->where('DB.COD_DISCIPLINA', $COD_DISCIPLINA);
        $this->db->order_by('DESCRICAO');
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getAutoresByBibliografia($COD_BIBLIOGRAFIA) {
        $this->db->select("A.DESCRICAO,A.CODIGO");
        $this->db->from('autores A');
        $this->db->join('autor_bibliografia AB', 'AB.COD_AUTOR = A.CODIGO');
        $this->db->where('AB.COD_BIBLIOGRAFIA', $COD_BIBLIOGRAFIA);
        $this->db->order_by('DESCRICAO');
        $sql = $this->db->get();

        if ($sql->num_rows > 0) {
            return $sql->result_array();
        } else {
            return NULL;
        }
    }

    public function getAutores() {
        $this->db->order_by('DESCRICAO');
        $sql = $this->db->get('autores');

        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function getAutorById($id) {
        $this->db->where('CODIGO', $id);
        $sql = $this->db->get('autores');

        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return false;
        }
    }

    public function getEditoraById($id) {
        $this->db->where('CODIGO', $id);
        $sql = $this->db->get('editoras');

        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return false;
        }
    }

    public function updateAutor($id, $dados) {
        $this->db->where('CODIGO', $id);

        if ($this->db->update('autores', $dados)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function novoAutor($dados) {
        if (!empty($dados)){
            $this->db->insert('autores', $dados);
        }
        return $this->db->insert_id();
    }

    public function novoHoraEstudo($dados) {
        if (!empty($dados)){
            $this->db->insert('tempo_velocidade', $dados);
        }
        return $this->db->insert_id();
    }

    public function alterarHoraEstudo($id, $dados) {
        $this->db->where('COD_ALUNO', $id);

        if ($this->db->update('tempo_velocidade', $dados)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function updateBibliografia($id, $dados) {
        $this->db->where('CODIGO', $id);
        if ($this->db->update('bibliografia', $dados)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function novaBibliografia($dados) {
        if (!empty($dados)) {
            if ($this->db->insert('bibliografia', $dados)) {
                return $this->db->insert_id();
            } else {
                return false;
            }
        }
    }

    public function editDisciplina($dados) {
        $this->db->where('CODIGO', $dados['CODIGO']);
        if ($this->db->update('disciplinas', $dados)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function novaDisciplina($dados) {
        if (!empty($dados)) {
            if ($this->db->insert('disciplinas', $dados)) {
                return $this->db->insert_id();
            } else {
                return false;
            }
        }
    }

    public function deleteDisciplina($codigo) {
        $this->db->where('CODIGO', $codigo);
        $this->db->delete('disciplinas');
    }

    public function novaDisciplinaBibliografia($dados) {
        if (!empty($dados)) {
            if ($this->db->insert('disciplinabibliografia', $dados)) {
                return $this->db->insert_id();
            } else {
                return false;
            }
        }
    }

    public function novoTopico($dados) {
        if (!empty($dados)) {
            if ($this->db->insert('topico', $dados)) {
                return $this->db->insert_id();
            } else {
                return false;
            }
        }
    }

    public function editaTopico($dados) {
        $this->db->where('CODIGO', $dados['CODIGO']);
        if (!empty($dados)) {
            if ($this->db->update('topico', $dados)) {
                return true;
            } else {
                return false;
            }
        }
    }

    public function editaDetalhe($dados) {
        $this->db->where('CODIGO', $dados['CODIGO']);
        if (!empty($dados)) {
            if ($this->db->update('detalhetopico', $dados)) {
                return true;
            } else {
                return false;
            }
        }
    }

    public function novoDetalheTopico($dados) {
        $detalhe = $this->getDetalheTopico($dados['COD_TOPICO'], $dados['COD_BIBLIOGRAFIA']);
        if (is_null($detalhe)) {
            if (!empty($dados)) {
                if ($this->db->insert('detalhetopico', $dados)) {
                    return $this->db->insert_id();
                } else {
                    return NULL;
                }
            }
        } else {
            $dados['CODIGO'] = $detalhe[0]['CODIGO'];
            return $this->editaDetalhe($dados);
        }
    }

    public function deleteBibliografia($id) {
        $this->db->where('CODIGO', $id);
        if ($this->db->delete('bibliografia')) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function novaBibliografiaAutor($dados) {
        if (!empty($dados)) {
            if ($this->db->insert('autor_bibliografia', $dados)) {
                return $this->db->insert_id();
            } else {
                return false;
            }
        }
    }

    public function retirarDisciplinaBibliografia($COD_BIBLIOGRAFIA, $COD_DISCIPLINA = NULL) {
        if ($COD_DISCIPLINA != NULL) {
            $this->db->where('COD_DISCIPLINA', $COD_DISCIPLINA);
        }
        $this->db->where('COD_BIBLIOGRAFIA', $COD_BIBLIOGRAFIA);
        if ($this->db->delete('disciplinabibliografia')) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function retirarBibliografiaAutor($COD_BIBLIOGRAFIA, $COD_AUTOR = NULL) {
        if ($COD_AUTOR != NULL) {
            $this->db->where('COD_AUTOR', $COD_AUTOR);
        }
        $this->db->where('COD_BIBLIOGRAFIA', $COD_BIBLIOGRAFIA);
        if ($this->db->delete('autor_bibliografia')) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function apagarTopico($COD_TOPICO) {
        $this->db->where('CODIGO', $COD_TOPICO);
        if ($this->db->delete('topico')) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function apagarDetalheTopico($COD_TOPICO) {
        $this->db->where('COD_TOPICO', $COD_TOPICO);
        if ($this->db->delete('detalhetopico')) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function deleteAutor($id) {
        $this->db->where('CODIGO', $id);
        if ($this->db->delete('autores')) {
            return TRUE;
        } else {
            return null;
        }
    }

    public function deleteEditoras($id) {
        $this->db->where('CODIGO', $id);

        if ($this->db->delete('editoras')) {
            return TRUE;
        } else {
            return NULL;
        }
    }

    public function updateEditora($id, $dados) {
        $this->db->where('CODIGO', $id);
        if ($this->db->update('editoras', $dados)) {
            return TRUE;
        } else {
            return FALSE;
        }
    }

    public function novaEditora($dados) {
        if (!empty($dados)) {
            $this->db->insert('editoras', $dados);
            return $this->db->insert_id();
        }
    }
    public function isCheck($chave = '') {
        $this->db->where('EMAIL', $this->input->post('EMAIL'));
        $sql = $this->db->get('cadastros');

        if ($sql->num_rows > 0) {
            return FALSE;
        } else {
            return TRUE;
        }
    }

    public function isThis($email) {
        $this->db->where('EMAIL', $email);
        $sql = $this->db->get('cadastros');

        if ($sql->num_rows > 0) {
            return ($sql->row('TIPO_PESSOA') == "juridica") ? $sql->row('RAZAO_SOCIAL') : $sql->row('NOME_COMPLETO');
        } else {
            return NULL;
        }
    }

    public function isCPF_CNPJ($email) {
        $this->db->where('EMAIL', $email);
        $sql = $this->db->get('cadastros');

        if ($sql->num_rows > 0) {
            return ($sql->row('TIPO_PESSOA') == "juridica") ? $sql->row('CNPJ') : $sql->row('CPF');
        } else {
            return NULL;
        }
    }

    public function getDados($codigo) {
        $this->db->where('CODIGO', $codigo);
        //  $this->db->where('COD_CHAVE', $this->userKey);
        $sql = $this->db->get('cadastros');

        if ($sql->num_rows > 0) {
            return $sql->row();
        } else {
            return NULL;
        }
    }
    public function get_grupo($grupo) {
        // $this->db->where('COD_CHAVE', $this->userKey);
        $this->db->where('GRUPO', $grupo);
        $sql = $this->db->get('cadastros');

        if ($sql->num_rows > 0) {
            return $sql->result();
        } else {
            return NULL;
        }
    }

    public function updateSenhaCliente($dados) {
        $this->db->where('CODIGO', $dados['CODIGO']);
        $set['SENHA'] = md5(md5($dados['NOVA_SENHA']));
        $sql = $this->db->update('cadastros', $set);

        if ($sql)
            return TRUE;
    }

    public function getUsers() {
        //  $this->db->where('COD_CHAVE', $this->userKey);
        $sql = $this->db->get('usuarios');

        if ($sql)
            return $sql->result();
    }

}
